define(['Util',
        '../common/getMenu',
        'list',
        'cookie',
        'form',
        'text!tpl/order/orderList.tpl',
        'text!tpl/order/assigned.tpl',
        'dialog',
        'select',
        'tab',
        'loading',
        '../common/getPath',
        '../common/getQueryString',
        'date',
        'provincesSelect',
        'validator',
        '../common/dateFormat'  
    ],
    function(Util, getMenu, List, $cookie, Form, tpl, AssignedTpl, Dialog, Select, Tab, Loading, AjaxPath, GetQueryString, MyDate, provincesSelect, Validator) {
        require(['style!css/style.css']);

        var $el = null;

        var _indexModule = null,
            list = null,
            tplId = null,
            tab = null,
            handLoading = null,
            demandEmployerSelect=null,
            orderTypeSelec=null,
            equipmentTypeSelect,
            assigendSelect=null,
            assigendDialog=null,
            numberValidator=null,

            dialog = null;//页面权限
        var initialize = function(indexModule, options, tabItem) {
            $el = $(tpl);
            _indexModule = indexModule;
             this.content = $el;
            // 事件--点击切换tab后事件回调
            $(tabItem).on("tabActive", function() {
                tabItem.show(true); // 刷新表单
            });

            tab = tabItem;
            createLoading();
            tplId = options.menuId;

            // 业务相关代码
            eventInit();
            listInit();
 
             $(function(){
                new provincesSelect({
                    elProvices:$("#province", $el),
                    elCity:$("#city", $el),
                    elTown:$("#town", $el)
                })
             })
          

            inSelect();   
            validata();     
            getOrderAuthority($el);//页面权限
           
        };

        var eventInit = function (){
            //页面除dialog按钮功能
            $el.on('click', '#btnAdd', addOrder);
            $el.on('click', '#btnDel', delOrder);
            $el.on('click', '#btnExp', expUsers);
            $el.on('click', '#btnExpChecked', expUsers);   //导出
            $el.on('click', '.btnSearch', search);
            $el.on('click', '.btnReset', searchRest);
            $el.on('click', '.orderDeleteBtn', delOrder)
            $el.on('click', '.orderEditBtn', editOrder);   //修改
            $el.on('click', '.orderSubmitBtn', updateStatus);  //提交
            $el.on('click', '.passBtn', updateStatus);  //审核，通过，发货，确认；
            $el.on('click', '.outBtn', updateStatus);  //驳回

            $el.on('click', '.orderAssignBtn', orderAssign);  //指派
            $('#tabList li.' + tplId).on('click', tabActive);

            $el.on('click', '.order-tri-left', pullUp);
            $el.on('click', '.order-tri-down', pullDown);

        }

        var tabActive = function() {
            // listInit();
            searchRest();
            // search();
            // getMenu(tab, tplId);   
        }
        var search = function(pageIndex) {
            //判断数量框的值要么是非负整数要么是空；
            if(numberValidator.form()){
            var data = Form.serialize($('.searchOrderForm', $el));
            //如果数量框右边输入值了，且比左边小，那么爆红；
            if(data.equipmentBigNum && Number(data.equipmentBigNum) < Number(data.equipmentLittleNnum)){
                 $('input[name=equipmentBigNum]',$el).addClass('validate-error');
                
                 $('#equipmentNum',$el).append('<div class="errorText arrow-top" style="position:relative; display: inline-block; top:-55px; left: 0px; width: 100%;"><span class="icon-i">!</span><span class="error-text">右侧数量不能小于左侧数量</span></div>');
                 clearTimeout(time);
                var time=setTimeout(function(){
                    $('input[name=equipmentBigNum]',$el).removeClass('validate-error');
                    $('#equipmentNum div.errorText.arrow-top',$el).remove();
        
                },2500)

            }else{
                data.limit = 10;
                data.page = 1;
                list.search(data,Number(pageIndex));
                $(".listContainer").find("a").removeClass("theSort");
                }
            }
        }
        var searchRest = function(){
            
            $("input[name=orderWaterCode]", $el).val("");
            $("input[name=orderPersonName]", $el).val("");
            $("input[name=equipmentLittleNnum]", $el).val("");
            $("input[name=equipmentBigNum]", $el).val("");
            $("select[name=addrProvince] option:first", $el).prop("selected", 'selected'); 
            $("input[name=contractCode]", $el).val("");
            $("input[name=contractName]", $el).val("");
            
            demandEmployerSelect.setValue(0);
            //orderTypeSelect.setValue(0);
            equipmentTypeSelect.setValue(0);
            contractStatusTypeSelect.setValue(0);
   
            list.search();
            $(".listContainer").find("a").removeClass("theSort");
        }
        var pullDown = function () {
            $(".order-canHide").hide();
            $(".order-tri-left").show();
            $(".order-tri-down").hide();
        };
        var pullUp = function () {
            $(".order-canHide").show();
            $(".order-tri-left").hide();
            $(".order-tri-down").show();
        }

        var inSelect = function (){
            //需求单位
            Util.ajax.getJson( AjaxPath.management + "/dict/dropDown?businessModual=orderList&businessType=demandEmployer", {}, function(result, isok){
              demandEmployerSelect = new Select({
                    el:$("#demandEmployer", $el),       //要绑定的容器
                    ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                        method:'GET'
                    },
                    label:'需求单位:', //下拉框单元左侧label文本，可不配置
                    selectText:false,       //是否显示  ‘选择|清除’  模式
                    name:'demandEmployer',    //下拉框单元右侧下拉框名称
                    disabled:false,     //组件是否被禁用
                    topOption:"全部", //设置最顶部option的text属性
                    value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                    textField:"dictName",   //设置下拉框内容，填写数据中对应的字段名
                    valueField:"dictValue",//设置下拉框value，填写数据中对应的字段名
                    datas: result.beans,         //数据源
                    loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                    dataReady:function(){
                        ////console.log("获取工作项类型");
                    } //select的DOM结构加载完后执行
                    //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
                });
                demandEmployerSelect.setValue(0);
            });

            //设备类型
            Util.ajax.getJson( AjaxPath.management + "/order/equipmentType", {}, function(result, isok){
                 equipmentTypeSelect = new Select({
                        el:$("#equipmentType", $el),       //要绑定的容器
                        ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                            method:'GET'
                        },
                        label:'设备类型:', //下拉框单元左侧label文本，可不配置
                        selectText:false,       //是否显示  ‘选择|清除’  模式
                        name:'equipmentType',    //下拉框单元右侧下拉框名称
                        disabled:false,     //组件是否被禁用
                        topOption:"全部", //设置最顶部option的text属性
                        value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                        textField:"equipmentName",   //设置下拉框内容，填写数据中对应的字段名
                        valueField:"id",//设置下拉框value，填写数据中对应的字段名
                        datas: result.beans,         //数据源
                        loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                        dataReady:function(){
                            ////console.log("获取工作项类型");
                        } //select的DOM结构加载完后执行
                        //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
                    });
                    equipmentTypeSelect.setValue(0);
                });

            //合同情况
            Util.ajax.getJson( AjaxPath.management + "/dict/dropDown?businessModual=orderList&businessType=contractStatus", {}, function(result, isok){
                 contractStatusTypeSelect = new Select({
                        el:$("#contractStatus", $el),       //要绑定的容器
                        ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                            method:'GET'
                        },
                        label:'合同情况:', //下拉框单元左侧label文本，可不配置
                        selectText:false,       //是否显示  ‘选择|清除’  模式
                        name:'contractStatus',    //下拉框单元右侧下拉框名称
                        disabled:false,     //组件是否被禁用
                        topOption:"全部", //设置最顶部option的text属性
                        value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                        textField:"dictName",   //设置下拉框内容，填写数据中对应的字段名
                        valueField:"dictValue",//设置下拉框value，填写数据中对应的字段名
                        datas: result.beans,         //数据源
                        loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                        dataReady:function(){
                            ////console.log("获取工作项类型");
                        } //select的DOM结构加载完后执行
                        //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
                    });
                    contractStatusTypeSelect.setValue(0);
                });
                //选择省；
                $("#province option:first",$el).text("全部");
                
        }

        var listInit = function (){
            var config = {
                el: $('.listContainer', $el),
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置；慎用
                    method:'GET'
                },
                field: {
                    boxType: 'checkbox',
                    key: 'id',
                    items: [
                    {
                        text: '工单流水号',
                        title: 'orderWaterCode',
                        name: 'orderWaterCode',
                        className: 'w90',
                        sorting:1,
                        width:140,
                        click: function (e, val, item) {
                                handLoading = new Loading(loadingConfig);
                                creatDialog(e, item);
                                handLoading.destroy();
                        },
                        render: function (item, val) {
                            val = $('<span/>').text( val ).html(); 
                            val = val.replace(/\s/g, '&nbsp;');
                            return '<a href="javascript:;" class="text-overflow text-pre" style="line-height:36px;display:block;outline:none;">' + val + '</a>';
                        }
                    },
                    {
                        text: '工单标题',
                        title: 'orderName',
                        name: 'orderName',
                        className: 'w90',
                        // sorting:1,
                        width:90,
                        render: function (item, val) {
                            val = $('<span/>').text( val ).html(); 
                            val = $.trim(val).replace(/\s/g, '&nbsp;');
                            return val 
                        
                        }
                    },
                    {
                        text: '申请人',
                        // title: 'orderPersonName',
                        name: 'orderPersonName',
                        className: 'w90',
                        width:75,
                        // sorting:1
                    },
                    {
                        text: '当前环节',
                        name: 'processName',
                        className: 'w90',
                        // sorting:1,
                        width:100,
                    },
                    {
                        text: '所属省份',
                        name: 'addrProvince',
                        className: 'w90',
                        width:75,
                        // sorting:1,
                    },
                   /* {
                        text: '需求单位',
                        name: 'demandEmployerValue',
                        className: 'w90',
                        // sorting:1,
                        width:90
                    },*/
                    {
                        text: '设备类型',
                        title: 'equipmentName',
                        name: 'equipmentName',
                        className: 'w120',
                        width:150,
                        // sorting:1
                    },
                    {
                        text: '设备数量',
                        // title:'equipmentNum',
                        name: 'equipmentNum',
                        className: 'w120',
                        width:80,
                        sorting:1
                    }
                    ,
                    {
                        text: '最晚发货时间',
                        // title: 'deliveryLastTime',
                        name: 'deliveryLastTime',
                        className: 'w120',
                        width:110,
                        sorting:1,
                        render: function (item, val) {
                            return new Date(val).Format("yyyy-MM-dd");
                        }
                    },
                    /*{
                        text: '需求提出时间',
                        // title: 'orderTime',
                        name: 'orderTime',
                        className: 'w120',
                        width:110,
                        sorting:1,
                        render: function (item, val) {
                            return new Date(val).Format("yyyy-MM-dd");
                        }
                    },*/
                    {
                        text: '操作',
                        // title: '',
                        name: '',
                        // width:130,
                        className: 'w90',
                        click: function (e, val, item) {
                            // console.log(val,item);
                        },
                        render: function (item, val) {
                            var userId=$cookie.get("userId")-0;
                            var orderPersonId=item.orderPersonId; //提出人；
                            var assignPerson=item.assignPerson;   //审批人；
                            var str = '<div class="fn-right">';
                            var strNone='<div class="fn-center">您没有权限操作该项!</div>';
                            // console.log(item.orderStatus,orderPersonId,assignPerson)
                            if(item.orderStatus === 1){
                                if(userId===orderPersonId){
                                    return str + '<button class="ml-5 t-btn t-btn-blue t-btn-xs orderEditBtn" style="margin-right:2px;"><a style="color:#fff">修改</a></button><button class="t-btn t-btn-blue t-btn-xs passBtn" style="margin-right:2px;"><a style="color:#fff">提交</a></button><button class="t-btn t-btn-blue t-btn-xs orderDeleteBtn"><a style="color:#fff">删除</a></button></div>';
                                }else{ return strNone}
                            }else if(item.orderStatus === 2 ||item.orderStatus === 3){
                                if(userId===assignPerson){
                                    return str + '<button class="t-btn t-btn-blue t-btn-xs orderAssignBtn" style="margin-right:2px;"><a style="color:#fff">指派</a></button><button class="ml-5 t-btn t-btn-blue t-btn-xs passBtn" style="margin-right:2px;"><a style="color:#fff">审批通过</a></button><button class="t-btn t-btn-blue t-btn-xs outBtn"><a style="color:#fff">驳回</a></button></div>';
                                }else{ return strNone}
                            }else if(item.orderStatus === 4){
                                if(userId===assignPerson){
                                    return str + '<button class="t-btn t-btn-blue t-btn-xs orderAssignBtn" style="margin-right:2px;"><a style="color:#fff">指派</a></button><button class="ml-5 t-btn t-btn-blue t-btn-xs passBtn" style="margin-right:2px;"><a style="color:#fff">审批通过</a></button><button class="t-btn t-btn-blue t-btn-xs outBtn"><a style="color:#fff">驳回</a></button></div>';
                                }else{ return strNone}
                            }else if(item.orderStatus === 5){
                                if(userId===assignPerson){
                                    return str + '<button class="t-btn t-btn-blue t-btn-xs orderAssignBtn" style="margin-right:2px;"><a style="color:#fff">指派</a></button><button class="ml-5 t-btn t-btn-blue t-btn-xs passBtn" style="margin-right:2px;"><a style="color:#fff">发货</a></button><button class="t-btn t-btn-blue t-btn-xs outBtn"><a style="color:#fff">驳回</a></button></div>';
                                }else{ return strNone}
                            }else if(item.orderStatus === 6){
                                if(userId===orderPersonId){
                                    return str + '<button class="ml-5 t-btn t-btn-blue t-btn-xs passBtn" style="margin-right:2px;"><a style="color:#fff">确认</a>';
                                }else{ return strNone}
                            }else if(item.orderStatus === 7){
                                if(item.isBJGroup===1){
                                    return str + '<button class="t-btn t-btn-blue t-btn-xs orderDeleteBtn" style="margin-right:2px;"><a style="color:#fff">删除</a></button></div>';
                                }else{ return strNone}
                            }
                        }
                    }]
                },
                page: {
                    customPages: [2, 3, 5, 10, 15, 20, 30, 50], //可选择每页显示多少条
                    perPage: 10, //默认每页显示多少条记录
                    total: true
                },
                data: {
                    url: AjaxPath.management + "/order/orderList?userId="+$cookie.get("userId")
                }
            };
            list = new List(config);
            list.search();
        }

        var addOrder=function (e){
            tab.createTab({
                title: '创建工单',
                closeable: 1, //是否可以关闭 0false不可以|1true可以
                className: 'addOrderTab'
            });
            tab.switchTab('创建工单');
            var projectdata = {};
            projectdata.menuId = tplId;
            require(['js/order/addOrder'], function(addProjectContent) {
                var result = new addProjectContent({}, projectdata, tab);
                tab.content(result.content);
            });
        }

        var delOrder = function(e){

            if(e.currentTarget.id!=="btnDel"){
                $(".listContainer .sn-list-content-locker.sn-list-show table tbody tr.selected td").click();
                $(".listContainer .sn-list-show table tbody tr").eq(e.currentTarget.parentNode.parentNode.parentNode.rowIndex).find('td').click();
            }

            handLoading = new Loading(loadingConfig);
           var nodes = list.getCheckedRows();
           var status=[];                 //所选项中工单状态中有23456的不能删除；
           $.each(nodes, function(i, obj) {
               status.push(obj.orderStatus);

           })
        //    console.log(status);
            if(nodes.length < 1) {
                handLoading.destroy();
                config = {
                    mode: 'tips',
                    content: '<div style="text-align:center;margin-top:70px">请选择至少一条数据进行删除！</div>',
                    width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                    height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                    cancelDisplay: false
                };
                var dialog = new Dialog(config);
            }else if(status.indexOf(2)!=-1 | status.indexOf(3)!=-1 | status.indexOf(4)!=-1 |status.indexOf(5)!=-1 | status.indexOf(6)!=-1){
                handLoading.destroy();
                config = {
                    mode: 'tips',
                    content: '<div style="text-align:center;margin-top:70px">所选项中有不可删除项！</div>',
                    width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                    height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                    cancelDisplay: false
                };
                var dialog = new Dialog(config);
            } else {
                var data = [];
                for(var i = 0; i < nodes.length; i++) {
                    data.push(list.getCheckedRows()[i].id);
                }
                delDialogBox(data);
            }    
        };

        var delDialogBox = function(data) {
            handLoading.destroy();
            var config = {
                mode: 'confirm', //对话框模式，默认normal标准|tips浮动层|confirm确认对话框
                title: "删除提示", //对话框标题
                content: '<div style="text-align:center;margin-top:50px">确认删除选择的工单？</div>' /* + content.substring(0,content.length-1)*/ , //对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                ok: function() {
                    handLoading = new Loading(loadingConfig);
                    deleteProject(data);
                    return true;
                }, // 配置该项时才会出现ok按钮，回调函数可为空。如果指定 return false 则执行完方法后不关闭对话框。默认 return true
                okValue: '确定', //确定按钮的文本 默认是 ‘ok’
                cancel: function() {search(list.pageIndex);}, //取消按钮的回调函数,配置该项时才会出现关闭按钮，回调函数可为空。
                cancelValue: '取消', //取消按钮的文本 默认是 ‘关闭’
                cancelDisplay: true, //是否显示取消按钮 默认true显示|false不显示
                width: 300, //对话框宽度，normal默认值为600，confirm默认值为300，tips默认值为240
                height: 120, //对话框高度，normal默认值为400，confirm默认值为180，tips默认值为80
                padding: '0 16px 1em 10px', //(默认值: 继承 css 文件设置) 设置消息内容与消息容器的填充边距，即 style padding属性
                align: 'bottom right', //设置对话框与其他元素的对齐方式。仅在show(elem)与showModal(elem)传入元素时生效。默认值: "bottom left"。可选："top left" "top" "top right" "right top" "right" "right bottom" "bottom right" "bottom" "bottom left" "left bottom" "left" "left top"。
                skin: 'dialogSkin dialogSkin2', //设置对话框额外的className参数,多个className请使用空格隔开。
                fixed: true, //是否开启固定定位 默认false不开启|true开启
                quickClose: false, //点击空白处快速关闭 默认false不关闭|true关闭
                modal: true, //是否开启模态框状态  默认false不开启|true开启,confirm默认状态为true
                beforeOpen: function() {}, //对话框打开之前执行。
                zIndex: 990 // 对话框的z-index值，默认是1024。
            };
            var delDialog = new Dialog(config)
        };

        var deleteProject = function(data) {
                Util.ajax.getJson(AjaxPath.management + "/order/deleteByIds?ids=" + data.toString(), {}, function(result, isok) {
                    var flag = result.returnMessage;
                    if(undefined === flag) {
                        handLoading.destroy();
                        new Dialog({
                            mode: 'confirm', //对话框模式，默认normal标准|tips浮动层|tips确认对话框
                            title: '提示', //对话框标题
                            width: 320,
                            height: 180,
                            modal: true,
                            content: '<div style="text-align:center;margin-top:50px">与服务器通讯失败，请检查网络！</div>', //对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                            cancelDisplay: false,
                            ok: function() {}, // 配置该项时才会出现ok按钮，回调函数可为空。如果指定 return false 则执行完方法后不关闭对话框。默认 return true
                            okValue: '关闭' //确定按钮的文本 默认是 ‘ok’
                        });
                        return;
                    } else {
                        handLoading.destroy();
                        new Dialog({
                            mode: 'tips',
                            content: '<div style="text-align:center;margin-top:70px">'+ result.returnMessage +'</div>',
                            width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                            height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                            cancelDisplay: false
                        });
                        if(result.returnCode==="0000"){
                            tabActive();
                        }
                    }
                })
        }

        var expUsers = function(e) {
            var arr = list.getCheckedRows(),newArr=[];
            for(var i = 0; i < arr.length; i++ ){
                newArr.push(arr[i].id);
            }

            var data = Form.serialize($('.searchOrderForm', $el));
            if(e.currentTarget.id === "btnExpChecked" && arr.length<1){
                new Dialog({
                    mode: 'tips',
                    content: '<div style="text-align:center;margin-top:70px">请选择至少一条数据进行导出！</div>',
                    width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                    height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                    cancelDisplay: false
                });
            } else if(e.currentTarget.id === "btnExp"){
                window.location.href = AjaxPath.management + "/order/export?orderWaterCode=" + data.orderWaterCode + "&orderPersonName=" + data.orderPersonName +"&equipmentLittleNnum="+data.equipmentLittleNnum+"&equipmentBigNum="+data.equipmentBigNum+"&addrProvince="+data.addrProvince+"&contractCode="+data.contractCode+"&contractName="+data.contractName+"&demandEmployer="+data.demandEmployer+"&orderType="+data.orderType+"&equipmentType="+data.equipmentType+"&contractStatus="+data.contractStatus+"&ids=";
            } else {
                window.location.href = AjaxPath.management + "/order/export?orderWaterCode=&ids="+newArr.toString();
            }
            // window.location.href = AjaxPath + "/projects/export";
        }


        //点击工单流水号查看工单；
        var creatDialog =function (e, item){
            item.data.menuId = tplId;
           
            require(['js/order/viewOrder'], function(viewOrder) {
            var myViewOrder = new viewOrder({}, item.data, tab);
            var config = {
                mode: 'normal', //对话框模式，默认normal标准|tips浮动层|confirm确认对话框
                title: "查看工单："+item.data.orderWaterCode, //对话框标题，
                content: myViewOrder.content, //对话框内容，可以是字符串、html代码段,tpl对象。默认为loading状态（由点组成的圈。大段代码建议使用 tpl。
                cancelValue: '关闭', //取消按钮的文本 默认是 ‘关闭’
                okValue: '修改', //取消按钮的文本 默认是 ‘关闭’//取消按钮的文本 默认是 ‘关闭’
                cancelDisplay: false, //是否显示取消按钮 默认true显示|false不显示
                width: 1000, //对话框宽度，normal默认值为600，confirm默认值为300，tips默认值为240
                height:  parseInt($(".sn-tab.J_tab_render").height()*0.8), //对话框高度，normal默认值为400，confirm默认值为180，tips默认值为80
                maxWidth: 240,//设置tips对话框的最大宽度,默认为240px。仅在tips对话框下生效，该项存在时，width属性将失效。
                maxHeight: 'auto', //设置tips对话框的最大高度,默认为auto。仅在tips对话框下生效，该项存在时，height属性将失效。
                padding:'0 16px 1em 10px',//(默认值: 继承 css 文件设置) 设置消息内容与消息容器的填充边距，即 style padding属性
                align: 'bottom left',//设置对话框与其他元素的对齐方式。仅在show(elem)与showModal(elem)传入元素时生效。默认值: "bottom left"。可选："top left" "top" "top right" "right top" "right" "right bottom" "bottom right" "bottom" "bottom left" "left bottom" "left" "left top"。
                skin: 'dialogSkin dialogSkin2',//设置对话框额外的className参数,多个className请使用空格隔开。
                fixed: false, //是否开启固定定位 默认false不开启|true开启
                quickClose: false, //点击空白处快速关闭 默认false不关闭|true关闭
                modal: true ,//是否开启模态框状态  默认false不开启|true开启,confirm默认状态为true
                backdropBackground:'#000',//设置遮罩颜色，默认 #000。
                backdropOpacity:0.7, //设置遮罩透明度，默认 0.7，取值范围：0~1 。
                beforeOpen: function() {
                    //console.log('对话框打开时执行。');

                }, //对话框打开之前执行。
                escClose:true,//esc键快速关闭对话框，默认为true
                zIndex:990   // 对话框的z-index值，默认是1024。
            };
           var dialog= new Dialog(config);
           dialog.on('onclose',function(){
            //console.log('弹窗关闭');
            search(list.pageIndex);
        });
        });       

        }

        //修改工单
        var editOrder =function(e){
            
            $(".listContainer .sn-list-content-locker.sn-list-show table tbody tr.selected td").click();
            $(".listContainer .sn-list-show table tbody tr").eq(e.currentTarget.parentNode.parentNode.parentNode.rowIndex).find('td').click();
          
            var nodes = list.getCheckedRows();

            tab.createTab({
                title: '修改工单',
                closeable: 1, //是否可以关闭 0false不可以|1true可以
                className: 'editOrderTab'
            });
            tab.switchTab('修改工单');
            var projectdata =nodes[0];
            projectdata.menuId = tplId;
            require(['js/order/editOrder'], function(editOrderContent) {
                var result = new editOrderContent({}, projectdata, tab);
                tab.content(result.content);
            });

        }
        
        //提交，审核通过，发货，确认，驳回；
        var updateStatus=function(e){
        	handLoading = new Loading(loadingConfig);
            $(".listContainer .sn-list-content-locker.sn-list-show table tbody tr.selected td").click();
            $(".listContainer .sn-list-show table tbody tr").eq(e.currentTarget.parentNode.parentNode.parentNode.rowIndex).find('td').click();
          
            var nodes = list.getCheckedRows();
            var number=null;
            if(e.currentTarget.className.indexOf("passBtn") >-1){
                number=0;
            }else if(e.currentTarget.className.indexOf("outBtn") >-1){
                number=1;
            }

            
            Util.ajax.getJson(AjaxPath.management + "/order/updateStatus?operation=" + number+"&id=" + nodes[0].id, {}, function(result, isok) {
                if(result.returnCode === "0000"){
                    handLoading.destroy();
                    tabActive();
                    var sDialog = new Dialog({
                        mode: 'tips', // 对话框模式，默认normal标准|confirm浮动层|confirm确认对话框
                        width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                        height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                        content: '<div style="text-align:center;margin-top:50px">'+result.beans.sucess+'</div>' ,// 对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                    });
                }else {
                    handLoading.destroy();
                    search(list.pageIndex);
                    var sDialog = new Dialog({
                        mode: 'tips', // 对话框模式，默认normal标准|confirm浮动层|confirm确认对话框
                        width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                        height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                        content: '<div style="text-align:center;margin-top:50px">'+result.returnMessage+'</div>' ,// 对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                    });
                }
            })


        };
        //指派
        var orderAssign=function(e){
            $(".listContainer .sn-list-content-locker.sn-list-show table tbody tr.selected td").click();
            $(".listContainer .sn-list-show table tbody tr").eq(e.currentTarget.parentNode.parentNode.parentNode.rowIndex).find('td').click();
            var nodes = list.getCheckedRows();

            var config_confirm = {
			    mode: 'confirm', //弹窗模式，可选：normal标准弹窗、tips提示弹窗、confirm确认弹窗；默认normal；
			    title: '工单指派', //弹窗标题；
			    width: '500', //步骤引导组件的宽
	            height: '221',
			    content: Util.hdb.compile(AssignedTpl)(), //弹窗内容，tips弹窗和confirm弹窗中只能是string类型。
			    okValue: '确定', //确定按钮的文本 默认是 ‘确定’
			    ok: function() {
			        // console.log('点击了确定按钮');
		            var htApprovedValidator = new Validator({
		                el: $(".assignedForm"),
		                // submitBtn: $(".btnSave"), //触发验证的按钮，可不配置
		                dialog: true, //是否弹出验证结果对话框
		                // msgPos: 'top', // 1.0.3版本新增，设置提示信息位置，默认值为top，可选right/bottom/top
		                // pattern: { newCodeName: "^[a-zA-Z][a-zA-Z0-9\\-_]*$" },
		                rules: {
		                    htApprovedName: 'required'
		                },
		                messages: {
		                    htApprovedName: {
		                        required: "请选择指派人！",
		                    }
		                }    
                    });
                    if(htApprovedValidator.form()){
                        handLoading = new Loading(loadingConfig);

                        Util.ajax.getJson(AjaxPath.management + "/order/doappoint?id="+nodes[0].id+"&userId="+assigendSelect.getSelected('userId'), {}, function(result, isok) {
                        
                            if(result.returnCode === "0000"){
                                handLoading.destroy();
                                assigendDialog.remove();
                                tabActive();
                                var smDialog = new Dialog({
                                    mode: 'tips', // 对话框模式，默认normal标准|confirm浮动层|confirm确认对话框
                                    width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                                    height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                                    content: '<div style="text-align:center;margin-top:50px">'+result.returnMessage+'</div>' ,// 对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                                });
                            }else {
                                handLoading.destroy();
                                search(list.pageIndex);
                                var smDialog = new Dialog({
                                    mode: 'tips', // 对话框模式，默认normal标准|confirm浮动层|confirm确认对话框
                                    width: 320, //对话框宽度，可选项。normal默认值为600，confirm默认值为300，tips默认值为240
                                    height: 180, //对话框高度，可选项。normal默认值为400，confirm默认值为180，tips默认值为80
                                    content: '<div style="text-align:center;margin-top:50px">'+result.returnMessage+'</div>' ,// 对话框内容，可以是字符串、html片段、或dom对象,默认为loading状态（点组成的圈）
                                });
                            }
                            
                        })
                    }
			        return false;
			    },
			    cancelValue: '取消', //取消按钮的文本 默认是 ‘取消’
			    cancelDisplay: true, //是否显示取消按钮 默认true显示|false不显示
			    quickClose: false, //点击空白处快速关闭 默认false不关闭|true关闭
			    modal: true ,//是否开启模态框状态，即背景遮罩。默认false不开启,confirm弹窗默认状态为true
			    backdropBackground:'#000',//设置遮罩颜色，默认 #000。
			    backdropOpacity:0.4, //设置遮罩透明度，默认 0.4，取值范围：0~1 。
			    beforeOpen: function() {
			    }, //弹窗打开之前执行。
			    escClose:true,//esc键快速关闭弹窗，默认为true
			    zIndex:990   // 弹窗的z-index值，默认是1024。
			}
             assigendDialog = new Dialog(config_confirm);

            Util.ajax.getJson(AjaxPath.management + "/order/appoint?id="+nodes[0].id+"&userId="+nodes[0].orderPersonId+"&orderStatus="+nodes[0].orderStatus, {}, function(result, isok) {
                assigendSelect = new Select({
                el: '#htApprovedSelect', //要绑定的容器
                name: 'htApprovedName', //下拉框单元添加name属性
                topOption: '请选择',
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField: 'userName',
                label: '<span class="color-red">*</span>指派给:',
                valueField: 'userId',
                loadAtClick: false,
                datas: result.beans //数据源与url模式可二选一
            });
            $('#htApprovedSelect label').width('22%')
            assigendSelect.setValue(0);
        });

        }

        var validata=function(){
               numberValidator = new Validator({
                el: $(".searchOrderForm",$el),
                // submitBtn: $(".btnSave"), //触发验证的按钮，可不配置
                dialog: true, //是否弹出验证结果对话框
                // msgPos: 'top', // 1.0.3版本新增，设置提示信息位置，默认值为top，可选right/bottom/top
                // pattern: { newCodeName: "^[a-zA-Z][a-zA-Z0-9\\-_]*$" },
                rules: {
                    equipmentLittleNnum: 'littleNember',
                    equipmentBigNum: 'bigeNember',
                },
                messages: {
                    equipmentLittleNnum: {
                        littleNember: "输入错误",
                    },
                    equipmentBigNum: {
                        bigeNember: "输入错误",
                    }
                }    
            });
            numberValidator.addMethod("littleNember", function(str) { return new RegExp("^([1-9][0-9]{0,5}|0)$").test(str); });
            numberValidator.addMethod("bigeNember", function(str) { return new RegExp("^([1-9][0-9]{0,5}|0)$").test(str); });
        }

        //页面元素级权限验证
       var getOrderAuthority = function($el){
        	Util.ajax.getJson(AjaxPath.management + '/authority/button/'+$cookie.get("userId"),{},function(json,status){
        		if (json.returnCode==="0000") {
        		$('#btnDel', $el).show();
        		$('#btnExpChecked', $el).show(); 
        		$('#btnExp', $el).show(); 
        		}else{
        		$('#btnDel', $el).hide();
        		$('#btnExpChecked', $el).hide(); 
        		$('#btnExp', $el).hide(); 
        		} 
        		})
        		// require(['js/btnAuthority'], function(oAuthority){
        		// new oAuthority($el);
        		// });
        }




        var createLoading = function() {
            loadingConfig = {
                el: 'body', //组件要绑定的容器，默认为body（此项可不配置或留空）
                className: 'loading', //组件外围的className
                position: 'center', //提示信息位置，顶部top|默认center中央
                width: '300', //loading的宽度,非必须，默认300
                height: 'auto', //loading的宽度,非必须，默认auto
                mask: 1, //是否显示遮罩， 0不显示|默认1显示
                animate: 1, //是否显示动画效果， 0不显示|默认1显示
                mode: 'layer', //展示方式 loadingLine线条方式|默认layer弹层方式
                text: '加载中...', //提示文字，默认 加载中...
                icon: 'dotCycle', //文字前面的gif动画， 默认dotCycle有点组成的圈|cmcc移动图标|cmccLarge大的移动图标
            }
        }

        return initialize;
    });